/**
 *    Copyright ${license.git.copyrightYears} the original author or authors.
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */
package org.mybatis.generator.internal.db;

import java.util.HashSet;
import java.util.Set;

/**
 * This class contains a somewhat comprehensive list of SQL reserved words. Since different databases have different
 * reserved words, this list is inclusive of many different databases - so it may include words that are not reserved in
 * some databases.
 * 
 * This list is based on the list from Drupal Handbook: http://drupal.org/node/141051 With additions for DB2
 * 
 * @author Jeff Butler
 * 
 */
public class SqlReservedWords {

  private static Set<String> RESERVED_WORDS;

  static {
    String[] words = { "A", //$NON-NLS-1$
        "ABORT", //$NON-NLS-1$
        "ABS", //$NON-NLS-1$
        "ABSOLUTE", //$NON-NLS-1$
        "ACCESS", //$NON-NLS-1$
        "ACTION", //$NON-NLS-1$
        "ADA", //$NON-NLS-1$
        "ADD", // DB2 //$NON-NLS-1$
        "ADMIN", //$NON-NLS-1$
        "AFTER", // DB2 //$NON-NLS-1$
        "AGGREGATE", //$NON-NLS-1$
        "ALIAS", // DB2 //$NON-NLS-1$
        "ALL", // DB2 //$NON-NLS-1$
        "ALLOCATE", // DB2 //$NON-NLS-1$
        "ALLOW", // DB2 //$NON-NLS-1$
        "ALSO", //$NON-NLS-1$
        "ALTER", // DB2 //$NON-NLS-1$
        "ALWAYS", //$NON-NLS-1$
        "ANALYSE", //$NON-NLS-1$
        "ANALYZE", //$NON-NLS-1$
        "AND", // DB2 //$NON-NLS-1$
        "ANY", // DB2 //$NON-NLS-1$
        "APPLICATION", // DB2 //$NON-NLS-1$
        "ARE", //$NON-NLS-1$
        "ARRAY", //$NON-NLS-1$
        "AS", // DB2 //$NON-NLS-1$
        "ASC", //$NON-NLS-1$
        "ASENSITIVE", //$NON-NLS-1$
        "ASSERTION", //$NON-NLS-1$
        "ASSIGNMENT", //$NON-NLS-1$
        "ASSOCIATE", // DB2 //$NON-NLS-1$
        "ASUTIME", // DB2 //$NON-NLS-1$
        "ASYMMETRIC", //$NON-NLS-1$
        "AT", //$NON-NLS-1$
        "ATOMIC", //$NON-NLS-1$
        "ATTRIBUTE", //$NON-NLS-1$
        "ATTRIBUTES", //$NON-NLS-1$
        "AUDIT", // DB2 //$NON-NLS-1$
        "AUTHORIZATION", // DB2 //$NON-NLS-1$
        "AUTO_INCREMENT", //$NON-NLS-1$
        "AUX", // DB2 //$NON-NLS-1$
        "AUXILIARY", // DB2 //$NON-NLS-1$
        "AVG", //$NON-NLS-1$
        "AVG_ROW_LENGTH", //$NON-NLS-1$
        "BACKUP", //$NON-NLS-1$
        "BACKWARD", //$NON-NLS-1$
        "BEFORE", // DB2 //$NON-NLS-1$
        "BEGIN", // DB2 //$NON-NLS-1$
        "BERNOULLI", //$NON-NLS-1$
        "BETWEEN", // DB2 //$NON-NLS-1$
        "BIGINT", //$NON-NLS-1$
        "BINARY", // DB2 //$NON-NLS-1$
        "BIT", //$NON-NLS-1$
        "BIT_LENGTH", //$NON-NLS-1$
        "BITVAR", //$NON-NLS-1$
        "BLOB", //$NON-NLS-1$
        "BOOL", //$NON-NLS-1$
        "BOOLEAN", //$NON-NLS-1$
        "BOTH", //$NON-NLS-1$
        "BREADTH", //$NON-NLS-1$
        "BREAK", //$NON-NLS-1$
        "BROWSE", //$NON-NLS-1$
        "BUFFERPOOL", // DB2 //$NON-NLS-1$
        "BULK", //$NON-NLS-1$
        "BY", // DB2 //$NON-NLS-1$
        "C", //$NON-NLS-1$
        "CACHE", // DB2 //$NON-NLS-1$
        "CALL", // DB2 //$NON-NLS-1$
        "CALLED", // DB2 //$NON-NLS-1$
        "CAPTURE", // DB2 //$NON-NLS-1$
        "CARDINALITY", // DB2 //$NON-NLS-1$
        "CASCADE", //$NON-NLS-1$
        "CASCADED", // DB2 //$NON-NLS-1$
        "CASE", // DB2 //$NON-NLS-1$
        "CAST", // DB2 //$NON-NLS-1$
        "CATALOG", //$NON-NLS-1$
        "CATALOG_NAME", //$NON-NLS-1$
        "CCSID", // DB2 //$NON-NLS-1$
        "CEIL", //$NON-NLS-1$
        "CEILING", //$NON-NLS-1$
        "CHAIN", //$NON-NLS-1$
        "CHANGE", //$NON-NLS-1$
        "CHAR", // DB2 //$NON-NLS-1$
        "CHAR_LENGTH", //$NON-NLS-1$
        "CHARACTER", // DB2 //$NON-NLS-1$
        "CHARACTER_LENGTH", //$NON-NLS-1$
        "CHARACTER_SET_CATALOG", //$NON-NLS-1$
        "CHARACTER_SET_NAME", //$NON-NLS-1$
        "CHARACTER_SET_SCHEMA", //$NON-NLS-1$
        "CHARACTERISTICS", //$NON-NLS-1$
        "CHARACTERS", //$NON-NLS-1$
        "CHECK", // DB2 //$NON-NLS-1$
        "CHECKED", //$NON-NLS-1$
        "CHECKPOINT", //$NON-NLS-1$
        "CHECKSUM", //$NON-NLS-1$
        "CLASS", //$NON-NLS-1$
        "CLASS_ORIGIN", //$NON-NLS-1$
        "CLOB", //$NON-NLS-1$
        "CLOSE", // DB2 //$NON-NLS-1$
        "CLUSTER", // DB2 //$NON-NLS-1$
        "CLUSTERED", //$NON-NLS-1$
        "COALESCE", //$NON-NLS-1$
        "COBOL", //$NON-NLS-1$
        "COLLATE", //$NON-NLS-1$
        "COLLATION", //$NON-NLS-1$
        "COLLATION_CATALOG", //$NON-NLS-1$
        "COLLATION_NAME", //$NON-NLS-1$
        "COLLATION_SCHEMA", //$NON-NLS-1$
        "COLLECT", //$NON-NLS-1$
        "COLLECTION", // DB2 //$NON-NLS-1$
        "COLLID", // DB2 //$NON-NLS-1$
        "COLUMN", // DB2 //$NON-NLS-1$
        "COLUMN_NAME", //$NON-NLS-1$
        "COLUMNS", //$NON-NLS-1$
        "COMMAND_FUNCTION", //$NON-NLS-1$
        "COMMAND_FUNCTION_CODE", //$NON-NLS-1$
        "COMMENT", // DB2 //$NON-NLS-1$
        "COMMIT", // DB2 //$NON-NLS-1$
        "COMMITTED", //$NON-NLS-1$
        "COMPLETION", //$NON-NLS-1$
        "COMPRESS", //$NON-NLS-1$
        "COMPUTE", //$NON-NLS-1$
        "CONCAT", // DB2 //$NON-NLS-1$
        "CONDITION", // DB2 //$NON-NLS-1$
        "CONDITION_NUMBER", //$NON-NLS-1$
        "CONNECT", // DB2 //$NON-NLS-1$
        "CONNECTION", // DB2 //$NON-NLS-1$
        "CONNECTION_NAME", //$NON-NLS-1$
        "CONSTRAINT", // DB2 //$NON-NLS-1$
        "CONSTRAINT_CATALOG", //$NON-NLS-1$
        "CONSTRAINT_NAME", //$NON-NLS-1$
        "CONSTRAINT_SCHEMA", //$NON-NLS-1$
        "CONSTRAINTS", //$NON-NLS-1$
        "CONSTRUCTOR", //$NON-NLS-1$
        "CONTAINS", // DB2 //$NON-NLS-1$
        "CONTAINSTABLE", //$NON-NLS-1$
        "CONTINUE", // DB2 //$NON-NLS-1$
        "CONVERSION", //$NON-NLS-1$
        "CONVERT", //$NON-NLS-1$
        "COPY", //$NON-NLS-1$
        "CORR", //$NON-NLS-1$
        "CORRESPONDING", //$NON-NLS-1$
        "COUNT", // DB2 //$NON-NLS-1$
        "COUNT_BIG", // DB2 //$NON-NLS-1$
        "COVAR_POP", //$NON-NLS-1$
        "COVAR_SAMP", //$NON-NLS-1$
        "CREATE", // DB2 //$NON-NLS-1$
        "CREATEDB", //$NON-NLS-1$
        "CREATEROLE", //$NON-NLS-1$
        "CREATEUSER", //$NON-NLS-1$
        "CROSS", // DB2 //$NON-NLS-1$
        "CSV", //$NON-NLS-1$
        "CUBE", //$NON-NLS-1$
        "CUME_DIST", //$NON-NLS-1$
        "CURRENT", // DB2 //$NON-NLS-1$
        "CURRENT_DATE", // DB2 //$NON-NLS-1$
        "CURRENT_DEFAULT_TRANSFORM_GROUP", //$NON-NLS-1$
        "CURRENT_LC_CTYPE", // DB2 //$NON-NLS-1$
        "CURRENT_PATH", // DB2 //$NON-NLS-1$
        "CURRENT_ROLE", //$NON-NLS-1$
        "CURRENT_SERVER", // DB2 //$NON-NLS-1$
        "CURRENT_TIME", // DB2 //$NON-NLS-1$
        "CURRENT_TIMESTAMP", // DB2 //$NON-NLS-1$
        "CURRENT_TIMEZONE", // DB2 //$NON-NLS-1$
        "CURRENT_TRANSFORM_GROUP_FOR_TYPE", //$NON-NLS-1$
        "CURRENT_USER", // DB2 //$NON-NLS-1$
        "CURSOR", // DB2 //$NON-NLS-1$
        "CURSOR_NAME", //$NON-NLS-1$
        "CYCLE", // DB2 //$NON-NLS-1$
        "DATA", // DB2 //$NON-NLS-1$
        "DATABASE", // DB2 //$NON-NLS-1$
        "DATABASES", //$NON-NLS-1$
        "DATE", //$NON-NLS-1$
        "DATETIME", //$NON-NLS-1$
        "DATETIME_INTERVAL_CODE", //$NON-NLS-1$
        "DATETIME_INTERVAL_PRECISION", //$NON-NLS-1$
        "DAY", // DB2 //$NON-NLS-1$
        "DAY_HOUR", //$NON-NLS-1$
        "DAY_MICROSECOND", //$NON-NLS-1$
        "DAY_MINUTE", //$NON-NLS-1$
        "DAY_SECOND", //$NON-NLS-1$
        "DAYOFMONTH", //$NON-NLS-1$
        "DAYOFWEEK", //$NON-NLS-1$
        "DAYOFYEAR", //$NON-NLS-1$
        "DAYS", // DB2 //$NON-NLS-1$
        "DB2GENERAL", // DB2 //$NON-NLS-1$
        "DB2GNRL", // DB2 //$NON-NLS-1$
        "DB2SQL", // DB2 //$NON-NLS-1$
        "DBCC", //$NON-NLS-1$
        "DBINFO", // DB2 //$NON-NLS-1$
        "DEALLOCATE", //$NON-NLS-1$
        "DEC", //$NON-NLS-1$
        "DECIMAL", //$NON-NLS-1$
        "DECLARE", // DB2 //$NON-NLS-1$
        "DEFAULT", // DB2 //$NON-NLS-1$
        "DEFAULTS", // DB2 //$NON-NLS-1$
        "DEFERRABLE", //$NON-NLS-1$
        "DEFERRED", //$NON-NLS-1$
        "DEFINED", //$NON-NLS-1$
        "DEFINER", //$NON-NLS-1$
        "DEFINITION", // DB2 //$NON-NLS-1$
        "DEGREE", //$NON-NLS-1$
        "DELAY_KEY_WRITE", //$NON-NLS-1$
        "DELAYED", //$NON-NLS-1$
        "DELETE", // DB2 //$NON-NLS-1$
        "DELIMITER", //$NON-NLS-1$
        "DELIMITERS", //$NON-NLS-1$
        "DENSE_RANK", //$NON-NLS-1$
        "DENY", //$NON-NLS-1$
        "DEPTH", //$NON-NLS-1$
        "DEREF", //$NON-NLS-1$
        "DERIVED", //$NON-NLS-1$
        "DESC", //$NON-NLS-1$
        "DESCRIBE", //$NON-NLS-1$
        "DESCRIPTOR", // DB2 //$NON-NLS-1$
        "DESTROY", //$NON-NLS-1$
        "DESTRUCTOR", //$NON-NLS-1$
        "DETERMINISTIC", // DB2 //$NON-NLS-1$
        "DIAGNOSTICS", //$NON-NLS-1$
        "DICTIONARY", //$NON-NLS-1$
        "DISABLE", //$NON-NLS-1$
        "DISALLOW", // DB2 //$NON-NLS-1$
        "DISCONNECT", // DB2 //$NON-NLS-1$
        "DISK", //$NON-NLS-1$
        "DISPATCH", //$NON-NLS-1$
        "DISTINCT", // DB2 //$NON-NLS-1$
        "DISTINCTROW", //$NON-NLS-1$
        "DISTRIBUTED", //$NON-NLS-1$
        "DIV", //$NON-NLS-1$
        "DO", // DB2 //$NON-NLS-1$
        "DOMAIN", //$NON-NLS-1$
        "DOUBLE", // DB2 //$NON-NLS-1$
        "DROP", // DB2 //$NON-NLS-1$
        "DSNHATTR", // DB2 //$NON-NLS-1$
        "DSSIZE", // DB2 //$NON-NLS-1$
        "DUAL", //$NON-NLS-1$
        "DUMMY", //$NON-NLS-1$
        "DUMP", //$NON-NLS-1$
        "DYNAMIC", // DB2 //$NON-NLS-1$
        "DYNAMIC_FUNCTION", //$NON-NLS-1$
        "DYNAMIC_FUNCTION_CODE", //$NON-NLS-1$
        "EACH", // DB2 //$NON-NLS-1$
        "EDITPROC", // DB2 //$NON-NLS-1$
        "ELEMENT", //$NON-NLS-1$
        "ELSE", // DB2 //$NON-NLS-1$
        "ELSEIF", // DB2 //$NON-NLS-1$
        "ENABLE", //$NON-NLS-1$
        "ENCLOSED", //$NON-NLS-1$
        "ENCODING", // DB2 //$NON-NLS-1$
        "ENCRYPTED", //$NON-NLS-1$
        "END", // DB2 //$NON-NLS-1$
        "END-EXEC", // DB2 //$NON-NLS-1$
        "END-EXEC1", // DB2 //$NON-NLS-1$
        "ENUM", //$NON-NLS-1$
        "EQUALS", //$NON-NLS-1$
        "ERASE", // DB2 //$NON-NLS-1$
        "ERRLVL", //$NON-NLS-1$
        "ESCAPE", // DB2 //$NON-NLS-1$
        "ESCAPED", //$NON-NLS-1$
        "EVERY", //$NON-NLS-1$
        "EXCEPT", // DB2 //$NON-NLS-1$
        "EXCEPTION", // DB2 //$NON-NLS-1$
        "EXCLUDE", //$NON-NLS-1$
        "EXCLUDING", // DB2 //$NON-NLS-1$
        "EXCLUSIVE", //$NON-NLS-1$
        "EXEC", //$NON-NLS-1$
        "EXECUTE", // DB2 //$NON-NLS-1$
        "EXISTING", //$NON-NLS-1$
        "EXISTS", // DB2 //$NON-NLS-1$
        "EXIT", // DB2 //$NON-NLS-1$
        "EXP", //$NON-NLS-1$
        "EXPLAIN", //$NON-NLS-1$
        "EXTERNAL", // DB2 //$NON-NLS-1$
        "EXTRACT", //$NON-NLS-1$
        "FALSE", //$NON-NLS-1$
        "FENCED", // DB2 //$NON-NLS-1$
        "FETCH", // DB2 //$NON-NLS-1$
        "FIELDPROC", // DB2 //$NON-NLS-1$
        "FIELDS", //$NON-NLS-1$
        "FILE", // DB2 //$NON-NLS-1$
        "FILLFACTOR", //$NON-NLS-1$
        "FILTER", //$NON-NLS-1$
        "FINAL", // DB2 //$NON-NLS-1$
        "FIRST", //$NON-NLS-1$
        "FLOAT", //$NON-NLS-1$
        "FLOAT4", //$NON-NLS-1$
        "FLOAT8", //$NON-NLS-1$
        "FLOOR", //$NON-NLS-1$
        "FLUSH", //$NON-NLS-1$
        "FOLLOWING", //$NON-NLS-1$
        "FOR", // DB2 //$NON-NLS-1$
        "FORCE", //$NON-NLS-1$
        "FOREIGN", // DB2 //$NON-NLS-1$
        "FORTRAN", //$NON-NLS-1$
        "FORWARD", //$NON-NLS-1$
        "FOUND", //$NON-NLS-1$
        "FREE", // DB2 //$NON-NLS-1$
        "FREETEXT", //$NON-NLS-1$
        "FREETEXTTABLE", //$NON-NLS-1$
        "FREEZE", //$NON-NLS-1$
        "FROM", // DB2 //$NON-NLS-1$
        "FULL", // DB2 //$NON-NLS-1$
        "FULLTEXT", //$NON-NLS-1$
        "FUNCTION", // DB2 //$NON-NLS-1$
        "FUSION", //$NON-NLS-1$
        "G", //$NON-NLS-1$
        "GENERAL", // DB2 //$NON-NLS-1$
        "GENERATED", // DB2 //$NON-NLS-1$
        "GET", // DB2 //$NON-NLS-1$
        "GLOBAL", // DB2 //$NON-NLS-1$
        "GO", // DB2 //$NON-NLS-1$
        "GOTO", // DB2 //$NON-NLS-1$
        "GRANT", // DB2 //$NON-NLS-1$
        "GRANTED", //$NON-NLS-1$
        "GRANTS", //$NON-NLS-1$
        "GRAPHIC", // DB2 //$NON-NLS-1$
        "GREATEST", //$NON-NLS-1$
        "GROUP", // DB2 //$NON-NLS-1$
        "GROUPING", //$NON-NLS-1$
        "HANDLER", // DB2 //$NON-NLS-1$
        "HAVING", // DB2 //$NON-NLS-1$
        "HEADER", //$NON-NLS-1$
        "HEAP", //$NON-NLS-1$
        "HIERARCHY", //$NON-NLS-1$
        "HIGH_PRIORITY", //$NON-NLS-1$
        "HOLD", // DB2 //$NON-NLS-1$
        "HOLDLOCK", //$NON-NLS-1$
        "HOST", //$NON-NLS-1$
        "HOSTS", //$NON-NLS-1$
        "HOUR", // DB2 //$NON-NLS-1$
        "HOUR_MICROSECOND", //$NON-NLS-1$
        "HOUR_MINUTE", //$NON-NLS-1$
        "HOUR_SECOND", //$NON-NLS-1$
        "HOURS", // DB2 //$NON-NLS-1$
        "IDENTIFIED", //$NON-NLS-1$
        "IDENTITY", // DB2 //$NON-NLS-1$
        "IDENTITY_INSERT", //$NON-NLS-1$
        "IDENTITYCOL", //$NON-NLS-1$
        "IF", // DB2 //$NON-NLS-1$
        "IGNORE", //$NON-NLS-1$
        "ILIKE", //$NON-NLS-1$
        "IMMEDIATE", // DB2 //$NON-NLS-1$
        "IMMUTABLE", //$NON-NLS-1$
        "IMPLEMENTATION", //$NON-NLS-1$
        "IMPLICIT", //$NON-NLS-1$
        "IN", // DB2 //$NON-NLS-1$
        "INCLUDE", //$NON-NLS-1$
        "INCLUDING", // DB2 //$NON-NLS-1$
        "INCREMENT", // DB2 //$NON-NLS-1$
        "INDEX", // DB2 //$NON-NLS-1$
        "INDICATOR", // DB2 //$NON-NLS-1$
        "INFILE", //$NON-NLS-1$
        "INFIX", //$NON-NLS-1$
        "INHERIT", // DB2 //$NON-NLS-1$
        "INHERITS", //$NON-NLS-1$
        "INITIAL", //$NON-NLS-1$
        "INITIALIZE", //$NON-NLS-1$
        "INITIALLY", //$NON-NLS-1$
        "INNER", // DB2 //$NON-NLS-1$
        "INOUT", // DB2 //$NON-NLS-1$
        "INPUT", //$NON-NLS-1$
        "INSENSITIVE", // DB2 //$NON-NLS-1$
        "INSERT", // DB2 //$NON-NLS-1$
        "INSERT_ID", //$NON-NLS-1$
        "INSTANCE", //$NON-NLS-1$
        "INSTANTIABLE", //$NON-NLS-1$
        "INSTEAD", //$NON-NLS-1$
        "INT", //$NON-NLS-1$
        "INT1", //$NON-NLS-1$
        "INT2", //$NON-NLS-1$
        "INT3", //$NON-NLS-1$
        "INT4", //$NON-NLS-1$
        "INT8", //$NON-NLS-1$
        "INTEGER", //$NON-NLS-1$
        "INTEGRITY", // DB2 //$NON-NLS-1$
        "INTERSECT", //$NON-NLS-1$
        "INTERSECTION", //$NON-NLS-1$
        "INTERVAL", //$NON-NLS-1$
        "INTO", // DB2 //$NON-NLS-1$
        "INVOKER", //$NON-NLS-1$
        "IS", // DB2 //$NON-NLS-1$
        "ISAM", //$NON-NLS-1$
        "ISNULL", //$NON-NLS-1$
        "ISOBID", // DB2 //$NON-NLS-1$
        "ISOLATION", // DB2 //$NON-NLS-1$
        "ITERATE", // DB2 //$NON-NLS-1$
        "JAR", // DB2 //$NON-NLS-1$
        "JAVA", // DB2 //$NON-NLS-1$
        "JOIN", // DB2 //$NON-NLS-1$
        "K", //$NON-NLS-1$
        "KEY", // DB2 //$NON-NLS-1$
        "KEY_MEMBER", //$NON-NLS-1$
        "KEY_TYPE", //$NON-NLS-1$
        "KEYS", //$NON-NLS-1$
        "KILL", //$NON-NLS-1$
        "LABEL", // DB2 //$NON-NLS-1$
        "LANCOMPILER", //$NON-NLS-1$
        "LANGUAGE", // DB2 //$NON-NLS-1$
        "LARGE", //$NON-NLS-1$
        "LAST", //$NON-NLS-1$
        "LAST_INSERT_ID", //$NON-NLS-1$
        "LATERAL", //$NON-NLS-1$
        "LC_CTYPE", // DB2 //$NON-NLS-1$
        "LEADING", //$NON-NLS-1$
        "LEAST", //$NON-NLS-1$
        "LEAVE", // DB2 //$NON-NLS-1$
        "LEFT", // DB2 //$NON-NLS-1$
        "LENGTH", //$NON-NLS-1$
        "LESS", //$NON-NLS-1$
        "LEVEL", //$NON-NLS-1$
        "LIKE", // DB2 //$NON-NLS-1$
        "LIMIT", //$NON-NLS-1$
        "LINENO", //$NON-NLS-1$
        "LINES", //$NON-NLS-1$
        "LINKTYPE", // DB2 //$NON-NLS-1$
        "LISTEN", //$NON-NLS-1$
        "LN", //$NON-NLS-1$
        "LOAD", //$NON-NLS-1$
        "LOCAL", // DB2 //$NON-NLS-1$
        "LOCALE", // DB2 //$NON-NLS-1$
        "LOCALTIME", //$NON-NLS-1$
        "LOCALTIMESTAMP", //$NON-NLS-1$
        "LOCATION", //$NON-NLS-1$
        "LOCATOR", // DB2 //$NON-NLS-1$
        "LOCATORS", // DB2 //$NON-NLS-1$
        "LOCK", // DB2 //$NON-NLS-1$
        "LOCKMAX", // DB2 //$NON-NLS-1$
        "LOCKSIZE", // DB2 //$NON-NLS-1$
        "LOGIN", //$NON-NLS-1$
        "LOGS", //$NON-NLS-1$
        "LONG", // DB2 //$NON-NLS-1$
        "LONGBLOB", //$NON-NLS-1$
        "LONGTEXT", //$NON-NLS-1$
        "LOOP", // DB2 //$NON-NLS-1$
        "LOW_PRIORITY", //$NON-NLS-1$
        "LOWER", //$NON-NLS-1$
        "M", //$NON-NLS-1$
        "MAP", //$NON-NLS-1$
        "MATCH", //$NON-NLS-1$
        "MATCHED", //$NON-NLS-1$
        "MAX", //$NON-NLS-1$
        "MAX_ROWS", //$NON-NLS-1$
        "MAXEXTENTS", //$NON-NLS-1$
        "MAXVALUE", // DB2 //$NON-NLS-1$
        "MEDIUMBLOB", //$NON-NLS-1$
        "MEDIUMINT", //$NON-NLS-1$
        "MEDIUMTEXT", //$NON-NLS-1$
        "MEMBER", //$NON-NLS-1$
        "MERGE", //$NON-NLS-1$
        "MESSAGE_LENGTH", //$NON-NLS-1$
        "MESSAGE_OCTET_LENGTH", //$NON-NLS-1$
        "MESSAGE_TEXT", //$NON-NLS-1$
        "METHOD", //$NON-NLS-1$
        "MICROSECOND", // DB2 //$NON-NLS-1$
        "MICROSECONDS", // DB2 //$NON-NLS-1$
        "MIDDLEINT", //$NON-NLS-1$
        "MIN", //$NON-NLS-1$
        "MIN_ROWS", //$NON-NLS-1$
        "MINUS", //$NON-NLS-1$
        "MINUTE", // DB2 //$NON-NLS-1$
        "MINUTE_MICROSECOND", //$NON-NLS-1$
        "MINUTE_SECOND", //$NON-NLS-1$
        "MINUTES", // DB2 //$NON-NLS-1$
        "MINVALUE", // DB2 //$NON-NLS-1$
        "MLSLABEL", //$NON-NLS-1$
        "MOD", //$NON-NLS-1$
        "MODE", // DB2 //$NON-NLS-1$
        "MODIFIES", // DB2 //$NON-NLS-1$
        "MODIFY", //$NON-NLS-1$
        "MODULE", //$NON-NLS-1$
        "MONTH", // DB2 //$NON-NLS-1$
        "MONTHNAME", //$NON-NLS-1$
        "MONTHS", // DB2 //$NON-NLS-1$
        "MORE", //$NON-NLS-1$
        "MOVE", //$NON-NLS-1$
        "MULTISET", //$NON-NLS-1$
        "MUMPS", //$NON-NLS-1$
        "MYISAM", //$NON-NLS-1$
        "NAME", //$NON-NLS-1$
        "NAMES", //$NON-NLS-1$
        "NATIONAL", //$NON-NLS-1$
        "NATURAL", //$NON-NLS-1$
        "NCHAR", //$NON-NLS-1$
        "NCLOB", //$NON-NLS-1$
        "NESTING", //$NON-NLS-1$
        "NEW", // DB2 //$NON-NLS-1$
        "NEW_TABLE", // DB2 //$NON-NLS-1$
        "NEXT", //$NON-NLS-1$
        "NO", // DB2 //$NON-NLS-1$
        "NO_WRITE_TO_BINLOG", //$NON-NLS-1$
        "NOAUDIT", //$NON-NLS-1$
        "NOCACHE", // DB2 //$NON-NLS-1$
        "NOCHECK", //$NON-NLS-1$
        "NOCOMPRESS", //$NON-NLS-1$
        "NOCREATEDB", //$NON-NLS-1$
        "NOCREATEROLE", //$NON-NLS-1$
        "NOCREATEUSER", //$NON-NLS-1$
        "NOCYCLE", // DB2 //$NON-NLS-1$
        "NODENAME", // DB2 //$NON-NLS-1$
        "NODENUMBER", // DB2 //$NON-NLS-1$
        "NOINHERIT", //$NON-NLS-1$
        "NOLOGIN", //$NON-NLS-1$
        "NOMAXVALUE", // DB2 //$NON-NLS-1$
        "NOMINVALUE", // DB2 //$NON-NLS-1$
        "NONCLUSTERED", //$NON-NLS-1$
        "NONE", //$NON-NLS-1$
        "NOORDER", // DB2 //$NON-NLS-1$
        "NORMALIZE", //$NON-NLS-1$
        "NORMALIZED", //$NON-NLS-1$
        "NOSUPERUSER", //$NON-NLS-1$
        "NOT", // DB2 //$NON-NLS-1$
        "NOTHING", //$NON-NLS-1$
        "NOTIFY", //$NON-NLS-1$
        "NOTNULL", //$NON-NLS-1$
        "NOWAIT", //$NON-NLS-1$
        "NULL", // DB2 //$NON-NLS-1$
        "NULLABLE", //$NON-NLS-1$
        "NULLIF", //$NON-NLS-1$
        "NULLS", // DB2 //$NON-NLS-1$
        "NUMBER", //$NON-NLS-1$
        "NUMERIC", //$NON-NLS-1$
        "NUMPARTS", // DB2 //$NON-NLS-1$
        "OBID", // DB2 //$NON-NLS-1$
        "OBJECT", //$NON-NLS-1$
        "OCTET_LENGTH", //$NON-NLS-1$
        "OCTETS", //$NON-NLS-1$
        "OF", // DB2 //$NON-NLS-1$
        "OFF", //$NON-NLS-1$
        "OFFLINE", //$NON-NLS-1$
        "OFFSET", //$NON-NLS-1$
        "OFFSETS", //$NON-NLS-1$
        "OIDS", //$NON-NLS-1$
        "OLD", // DB2 //$NON-NLS-1$
        "OLD_TABLE", // DB2 //$NON-NLS-1$
        "ON", // DB2 //$NON-NLS-1$
        "ONLINE", //$NON-NLS-1$
        "ONLY", //$NON-NLS-1$
        "OPEN", // DB2 //$NON-NLS-1$
        "OPENDATASOURCE", //$NON-NLS-1$
        "OPENQUERY", //$NON-NLS-1$
        "OPENROWSET", //$NON-NLS-1$
        "OPENXML", //$NON-NLS-1$
        "OPERATION", //$NON-NLS-1$
        "OPERATOR", //$NON-NLS-1$
        "OPTIMIZATION", // DB2 //$NON-NLS-1$
        "OPTIMIZE", // DB2 //$NON-NLS-1$
        "OPTION", // DB2 //$NON-NLS-1$
        "OPTIONALLY", //$NON-NLS-1$
        "OPTIONS", //$NON-NLS-1$
        "OR", // DB2 //$NON-NLS-1$
        "ORDER", // DB2 //$NON-NLS-1$
        "ORDERING", //$NON-NLS-1$
        "ORDINALITY", //$NON-NLS-1$
        "OTHERS", //$NON-NLS-1$
        "OUT", // DB2 //$NON-NLS-1$
        "OUTER", // DB2 //$NON-NLS-1$
        "OUTFILE", //$NON-NLS-1$
        "OUTPUT", //$NON-NLS-1$
        "OVER", //$NON-NLS-1$
        "OVERLAPS", //$NON-NLS-1$
        "OVERLAY", //$NON-NLS-1$
        "OVERRIDING", // DB2 //$NON-NLS-1$
        "OWNER", //$NON-NLS-1$
        "PACK_KEYS", //$NON-NLS-1$
        "PACKAGE", // DB2 //$NON-NLS-1$
        "PAD", //$NON-NLS-1$
        "PARAMETER", // DB2 //$NON-NLS-1$
        "PARAMETER_MODE", //$NON-NLS-1$
        "PARAMETER_NAME", //$NON-NLS-1$
        "PARAMETER_ORDINAL_POSITION", //$NON-NLS-1$
        "PARAMETER_SPECIFIC_CATALOG", //$NON-NLS-1$
        "PARAMETER_SPECIFIC_NAME", //$NON-NLS-1$
        "PARAMETER_SPECIFIC_SCHEMA", //$NON-NLS-1$
        "PARAMETERS", //$NON-NLS-1$
        "PART", // DB2 //$NON-NLS-1$
        "PARTIAL", //$NON-NLS-1$
        "PARTITION", // DB2 //$NON-NLS-1$
        "PASCAL", //$NON-NLS-1$
        "PASSWORD", //$NON-NLS-1$
        "PATH", // DB2 //$NON-NLS-1$
        "PCTFREE", //$NON-NLS-1$
        "PERCENT", //$NON-NLS-1$
        "PERCENT_RANK", //$NON-NLS-1$
        "PERCENTILE_CONT", //$NON-NLS-1$
        "PERCENTILE_DISC", //$NON-NLS-1$
        "PIECESIZE", // DB2 //$NON-NLS-1$
        "PLACING", //$NON-NLS-1$
        "PLAN", // DB2 //$NON-NLS-1$
        "PLI", //$NON-NLS-1$
        "POSITION", // DB2 //$NON-NLS-1$
        "POSTFIX", //$NON-NLS-1$
        "POWER", //$NON-NLS-1$
        "PRECEDING", //$NON-NLS-1$
        "PRECISION", // DB2 //$NON-NLS-1$
        "PREFIX", //$NON-NLS-1$
        "PREORDER", //$NON-NLS-1$
        "PREPARE", // DB2 //$NON-NLS-1$
        "PREPARED", //$NON-NLS-1$
        "PRESERVE", //$NON-NLS-1$
        "PRIMARY", // DB2 //$NON-NLS-1$
        "PRINT", //$NON-NLS-1$
        "PRIOR", //$NON-NLS-1$
        "PRIQTY", // DB2 //$NON-NLS-1$
        "PRIVILEGES", // DB2 //$NON-NLS-1$
        "PROC", //$NON-NLS-1$
        "PROCEDURAL", //$NON-NLS-1$
        "PROCEDURE", // DB2 //$NON-NLS-1$
        "PROCESS", //$NON-NLS-1$
        "PROCESSLIST", //$NON-NLS-1$
        "PROGRAM", // DB2 //$NON-NLS-1$
        "PSID", // DB2 //$NON-NLS-1$
        "PUBLIC", //$NON-NLS-1$
        "PURGE", //$NON-NLS-1$
        "QUERYNO", // DB2 //$NON-NLS-1$
        "QUOTE", //$NON-NLS-1$
        "RAID0", //$NON-NLS-1$
        "RAISERROR", //$NON-NLS-1$
        "RANGE", //$NON-NLS-1$
        "RANK", //$NON-NLS-1$
        "RAW", //$NON-NLS-1$
        "READ", // DB2 //$NON-NLS-1$
        "READS", // DB2 //$NON-NLS-1$
        "READTEXT", //$NON-NLS-1$
        "REAL", //$NON-NLS-1$
        "RECHECK", //$NON-NLS-1$
        "RECONFIGURE", //$NON-NLS-1$
        "RECOVERY", // DB2 //$NON-NLS-1$
        "RECURSIVE", //$NON-NLS-1$
        "REF", //$NON-NLS-1$
        "REFERENCES", // DB2 //$NON-NLS-1$
        "REFERENCING", // DB2 //$NON-NLS-1$
        "REGEXP", //$NON-NLS-1$
        "REGR_AVGX", //$NON-NLS-1$
        "REGR_AVGY", //$NON-NLS-1$
        "REGR_COUNT", //$NON-NLS-1$
        "REGR_INTERCEPT", //$NON-NLS-1$
        "REGR_R2", //$NON-NLS-1$
        "REGR_SLOPE", //$NON-NLS-1$
        "REGR_SXX", //$NON-NLS-1$
        "REGR_SXY", //$NON-NLS-1$
        "REGR_SYY", //$NON-NLS-1$
        "REINDEX", //$NON-NLS-1$
        "RELATIVE", //$NON-NLS-1$
        "RELEASE", // DB2 //$NON-NLS-1$
        "RELOAD", //$NON-NLS-1$
        "RENAME", // DB2 //$NON-NLS-1$
        "REPEAT", // DB2 //$NON-NLS-1$
        "REPEATABLE", //$NON-NLS-1$
        "REPLACE", //$NON-NLS-1$
        "REPLICATION", //$NON-NLS-1$
        "REQUIRE", //$NON-NLS-1$
        "RESET", // DB2 //$NON-NLS-1$
        "RESIGNAL", // DB2 //$NON-NLS-1$
        "RESOURCE", //$NON-NLS-1$
        "RESTART", // DB2 //$NON-NLS-1$
        "RESTORE", //$NON-NLS-1$
        "RESTRICT", // DB2 //$NON-NLS-1$
        "RESULT", // DB2 //$NON-NLS-1$
        "RESULT_SET_LOCATOR", // DB2 //$NON-NLS-1$
        "RETURN", // DB2 //$NON-NLS-1$
        "RETURNED_CARDINALITY", //$NON-NLS-1$
        "RETURNED_LENGTH", //$NON-NLS-1$
        "RETURNED_OCTET_LENGTH", //$NON-NLS-1$
        "RETURNED_SQLSTATE", //$NON-NLS-1$
        "RETURNS", // DB2 //$NON-NLS-1$
        "REVOKE", // DB2 //$NON-NLS-1$
        "RIGHT", // DB2 //$NON-NLS-1$
        "RLIKE", //$NON-NLS-1$
        "ROLE", //$NON-NLS-1$
        "ROLLBACK", // DB2 //$NON-NLS-1$
        "ROLLUP", //$NON-NLS-1$
        "ROUTINE", // DB2 //$NON-NLS-1$
        "ROUTINE_CATALOG", //$NON-NLS-1$
        "ROUTINE_NAME", //$NON-NLS-1$
        "ROUTINE_SCHEMA", //$NON-NLS-1$
        "ROW", // DB2 //$NON-NLS-1$
        "ROW_COUNT", //$NON-NLS-1$
        "ROW_NUMBER", //$NON-NLS-1$
        "ROWCOUNT", //$NON-NLS-1$
        "ROWGUIDCOL", //$NON-NLS-1$
        "ROWID", //$NON-NLS-1$
        "ROWNUM", //$NON-NLS-1$
        "ROWS", // DB2 //$NON-NLS-1$
        "RRN", // DB2 //$NON-NLS-1$
        "RULE", //$NON-NLS-1$
        "RUN", // DB2 //$NON-NLS-1$
        "SAVE", //$NON-NLS-1$
        "SAVEPOINT", // DB2 //$NON-NLS-1$
        "SCALE", //$NON-NLS-1$
        "SCHEMA", // DB2 //$NON-NLS-1$
        "SCHEMA_NAME", //$NON-NLS-1$
        "SCHEMAS", //$NON-NLS-1$
        "SCOPE", //$NON-NLS-1$
        "SCOPE_CATALOG", //$NON-NLS-1$
        "SCOPE_NAME", //$NON-NLS-1$
        "SCOPE_SCHEMA", //$NON-NLS-1$
        "SCRATCHPAD", // DB2 //$NON-NLS-1$
        "SCROLL", //$NON-NLS-1$
        "SEARCH", //$NON-NLS-1$
        "SECOND", // DB2 //$NON-NLS-1$
        "SECOND_MICROSECOND", //$NON-NLS-1$
        "SECONDS", // DB2 //$NON-NLS-1$
        "SECQTY", // DB2 //$NON-NLS-1$
        "SECTION", //$NON-NLS-1$
        "SECURITY", // DB2 //$NON-NLS-1$
        "SELECT", // DB2 //$NON-NLS-1$
        "SELF", //$NON-NLS-1$
        "SENSITIVE", // DB2 //$NON-NLS-1$
        "SEPARATOR", //$NON-NLS-1$
        "SEQUENCE", //$NON-NLS-1$
        "SERIALIZABLE", //$NON-NLS-1$
        "SERVER_NAME", //$NON-NLS-1$
        "SESSION", //$NON-NLS-1$
        "SESSION_USER", //$NON-NLS-1$
        "SET", // DB2 //$NON-NLS-1$
        "SETOF", //$NON-NLS-1$
        "SETS", //$NON-NLS-1$
        "SETUSER", //$NON-NLS-1$
        "SHARE", //$NON-NLS-1$
        "SHOW", //$NON-NLS-1$
        "SHUTDOWN", //$NON-NLS-1$
        "SIGNAL", // DB2 //$NON-NLS-1$
        "SIMILAR", //$NON-NLS-1$
        "SIMPLE", // DB2 //$NON-NLS-1$
        "SIZE", //$NON-NLS-1$
        "SMALLINT", //$NON-NLS-1$
        "SOME", // DB2 //$NON-NLS-1$
        "SONAME", //$NON-NLS-1$
        "SOURCE", // DB2 //$NON-NLS-1$
        "SPACE", //$NON-NLS-1$
        "SPATIAL", //$NON-NLS-1$
        "SPECIFIC", // DB2 //$NON-NLS-1$
        "SPECIFIC_NAME", //$NON-NLS-1$
        "SPECIFICTYPE", //$NON-NLS-1$
        "SQL", // DB2 //$NON-NLS-1$
        "SQL_BIG_RESULT", //$NON-NLS-1$
        "SQL_BIG_SELECTS", //$NON-NLS-1$
        "SQL_BIG_TABLES", //$NON-NLS-1$
        "SQL_CALC_FOUND_ROWS", //$NON-NLS-1$
        "SQL_LOG_OFF", //$NON-NLS-1$
        "SQL_LOG_UPDATE", //$NON-NLS-1$
        "SQL_LOW_PRIORITY_UPDATES", //$NON-NLS-1$
        "SQL_SELECT_LIMIT", //$NON-NLS-1$
        "SQL_SMALL_RESULT", //$NON-NLS-1$
        "SQL_WARNINGS", //$NON-NLS-1$
        "SQLCA", //$NON-NLS-1$
        "SQLCODE", //$NON-NLS-1$
        "SQLERROR", //$NON-NLS-1$
        "SQLEXCEPTION", //$NON-NLS-1$
        "SQLID", // DB2 //$NON-NLS-1$
        "SQLSTATE", //$NON-NLS-1$
        "SQLWARNING", //$NON-NLS-1$
        "SQRT", //$NON-NLS-1$
        "SSL", //$NON-NLS-1$
        "STABLE", //$NON-NLS-1$
        "STANDARD", // DB2 //$NON-NLS-1$
        "START", // DB2 //$NON-NLS-1$
        "STARTING", //$NON-NLS-1$
        "STATE", //$NON-NLS-1$
        "STATEMENT", //$NON-NLS-1$
        "STATIC", // DB2 //$NON-NLS-1$
        "STATISTICS", //$NON-NLS-1$
        "STATUS", //$NON-NLS-1$
        "STAY", // DB2 //$NON-NLS-1$
        "STDDEV_POP", //$NON-NLS-1$
        "STDDEV_SAMP", //$NON-NLS-1$
        "STDIN", //$NON-NLS-1$
        "STDOUT", //$NON-NLS-1$
        "STOGROUP", // DB2 //$NON-NLS-1$
        "STORAGE", //$NON-NLS-1$
        "STORES", // DB2 //$NON-NLS-1$
        "STRAIGHT_JOIN", //$NON-NLS-1$
        "STRICT", //$NON-NLS-1$
        "STRING", //$NON-NLS-1$
        "STRUCTURE", //$NON-NLS-1$
        "STYLE", // DB2 //$NON-NLS-1$
        "SUBCLASS_ORIGIN", //$NON-NLS-1$
        "SUBLIST", //$NON-NLS-1$
        "SUBMULTISET", //$NON-NLS-1$
        "SUBPAGES", // DB2 //$NON-NLS-1$
        "SUBSTRING", // DB2 //$NON-NLS-1$
        "SUCCESSFUL", //$NON-NLS-1$
        "SUM", //$NON-NLS-1$
        "SUPERUSER", //$NON-NLS-1$
        "SYMMETRIC", //$NON-NLS-1$
        "SYNONYM", // DB2 //$NON-NLS-1$
        "SYSDATE", //$NON-NLS-1$
        "SYSFUN", // DB2 //$NON-NLS-1$
        "SYSIBM", // DB2 //$NON-NLS-1$
        "SYSID", //$NON-NLS-1$
        "SYSPROC", // DB2 //$NON-NLS-1$
        "SYSTEM", // DB2 //$NON-NLS-1$
        "SYSTEM_USER", //$NON-NLS-1$
        "TABLE", // DB2 //$NON-NLS-1$
        "TABLE_NAME", //$NON-NLS-1$
        "TABLES", //$NON-NLS-1$
        "TABLESAMPLE", //$NON-NLS-1$
        "TABLESPACE", // DB2 //$NON-NLS-1$
        "TEMP", //$NON-NLS-1$
        "TEMPLATE", //$NON-NLS-1$
        "TEMPORARY", //$NON-NLS-1$
        "TERMINATE", //$NON-NLS-1$
        "TERMINATED", //$NON-NLS-1$
        "TEXT", //$NON-NLS-1$
        "TEXTSIZE", //$NON-NLS-1$
        "THAN", //$NON-NLS-1$
        "THEN", // DB2 //$NON-NLS-1$
        "TIES", //$NON-NLS-1$
        "TIME", //$NON-NLS-1$
        "TIMESTAMP", //$NON-NLS-1$
        "TIMEZONE_HOUR", //$NON-NLS-1$
        "TIMEZONE_MINUTE", //$NON-NLS-1$
        "TINYBLOB", //$NON-NLS-1$
        "TINYINT", //$NON-NLS-1$
        "TINYTEXT", //$NON-NLS-1$
        "TO", // DB2 //$NON-NLS-1$
        "TOAST", //$NON-NLS-1$
        "TOP", //$NON-NLS-1$
        "TOP_LEVEL_COUNT", //$NON-NLS-1$
        "TRAILING", //$NON-NLS-1$
        "TRAN", //$NON-NLS-1$
        "TRANSACTION", // DB2 //$NON-NLS-1$
        "TRANSACTION_ACTIVE", //$NON-NLS-1$
        "TRANSACTIONS_COMMITTED", //$NON-NLS-1$
        "TRANSACTIONS_ROLLED_BACK", //$NON-NLS-1$
        "TRANSFORM", //$NON-NLS-1$
        "TRANSFORMS", //$NON-NLS-1$
        "TRANSLATE", //$NON-NLS-1$
        "TRANSLATION", //$NON-NLS-1$
        "TREAT", //$NON-NLS-1$
        "TRIGGER", // DB2 //$NON-NLS-1$
        "TRIGGER_CATALOG", //$NON-NLS-1$
        "TRIGGER_NAME", //$NON-NLS-1$
        "TRIGGER_SCHEMA", //$NON-NLS-1$
        "TRIM", // DB2 //$NON-NLS-1$
        "TRUE", //$NON-NLS-1$
        "TRUNCATE", //$NON-NLS-1$
        "TRUSTED", //$NON-NLS-1$
        "TSEQUAL", //$NON-NLS-1$
        "TYPE", // DB2 //$NON-NLS-1$
        "UESCAPE", //$NON-NLS-1$
        "UID", //$NON-NLS-1$
        "UNBOUNDED", //$NON-NLS-1$
        "UNCOMMITTED", //$NON-NLS-1$
        "UNDER", //$NON-NLS-1$
        "UNDO", // DB2 //$NON-NLS-1$
        "UNENCRYPTED", //$NON-NLS-1$
        "UNION", // DB2 //$NON-NLS-1$
        "UNIQUE", // DB2 //$NON-NLS-1$
        "UNKNOWN", //$NON-NLS-1$
        "UNLISTEN", //$NON-NLS-1$
        "UNLOCK", //$NON-NLS-1$
        "UNNAMED", //$NON-NLS-1$
        "UNNEST", //$NON-NLS-1$
        "UNSIGNED", //$NON-NLS-1$
        "UNTIL", // DB2 //$NON-NLS-1$
        "UPDATE", // DB2 //$NON-NLS-1$
        "UPDATETEXT", //$NON-NLS-1$
        "UPPER", //$NON-NLS-1$
        "USAGE", // DB2 //$NON-NLS-1$
        "USE", //$NON-NLS-1$
        "USER", // DB2 //$NON-NLS-1$
        "USER_DEFINED_TYPE_CATALOG", //$NON-NLS-1$
        "USER_DEFINED_TYPE_CODE", //$NON-NLS-1$
        "USER_DEFINED_TYPE_NAME", //$NON-NLS-1$
        "USER_DEFINED_TYPE_SCHEMA", //$NON-NLS-1$
        "USING", // DB2 //$NON-NLS-1$
        "UTC_DATE", //$NON-NLS-1$
        "UTC_TIME", //$NON-NLS-1$
        "UTC_TIMESTAMP", //$NON-NLS-1$
        "VACUUM", //$NON-NLS-1$
        "VALID", //$NON-NLS-1$
        "VALIDATE", //$NON-NLS-1$
        "VALIDATOR", //$NON-NLS-1$
        "VALIDPROC", // DB2 //$NON-NLS-1$
        "VALUE", //$NON-NLS-1$
        "VALUES", // DB2 //$NON-NLS-1$
        "VAR_POP", //$NON-NLS-1$
        "VAR_SAMP", //$NON-NLS-1$
        "VARBINARY", //$NON-NLS-1$
        "VARCHAR", //$NON-NLS-1$
        "VARCHAR2", //$NON-NLS-1$
        "VARCHARACTER", //$NON-NLS-1$
        "VARIABLE", // DB2 //$NON-NLS-1$
        "VARIABLES", //$NON-NLS-1$
        "VARIANT", // DB2 //$NON-NLS-1$
        "VARYING", //$NON-NLS-1$
        "VCAT", // DB2 //$NON-NLS-1$
        "VERBOSE", //$NON-NLS-1$
        "VIEW", // DB2 //$NON-NLS-1$
        "VOLATILE", //$NON-NLS-1$
        "VOLUMES", // DB2 //$NON-NLS-1$
        "WAITFOR", //$NON-NLS-1$
        "WHEN", // DB2 //$NON-NLS-1$
        "WHENEVER", //$NON-NLS-1$
        "WHERE", // DB2 //$NON-NLS-1$
        "WHILE", // DB2 //$NON-NLS-1$
        "WIDTH_BUCKET", //$NON-NLS-1$
        "WINDOW", //$NON-NLS-1$
        "WITH", // DB2 //$NON-NLS-1$
        "WITHIN", //$NON-NLS-1$
        "WITHOUT", //$NON-NLS-1$
        "WLM", // DB2 //$NON-NLS-1$
        "WORK", //$NON-NLS-1$
        "WRITE", // DB2 //$NON-NLS-1$
        "WRITETEXT", //$NON-NLS-1$
        "X509", //$NON-NLS-1$
        "XOR", //$NON-NLS-1$
        "YEAR", // DB2 //$NON-NLS-1$
        "YEAR_MONTH", //$NON-NLS-1$
        "YEARS", // DB2 //$NON-NLS-1$
        "ZEROFILL", //$NON-NLS-1$
        "ZONE" //$NON-NLS-1$
    };

    RESERVED_WORDS = new HashSet<String>(words.length);

    for (String word : words) {
      RESERVED_WORDS.add(word);
    }
  }

  public static boolean containsWord(String word) {
    boolean rc;

    if (word == null) {
      rc = false;
    } else {
      rc = RESERVED_WORDS.contains(word.toUpperCase());
    }

    return rc;
  }

  /**
   * Utility class - no instances allowed
   */
  private SqlReservedWords() {
  }
}
